package com.tencent.wxcloudrun.config;

import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.filter.SaServletFilter;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil;
import com.tencent.wxcloudrun.utils.JsonUtil;
import com.tencent.wxcloudrun.controller.utils.ResultResponse;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SaTokenConfigure {

    /**
     * 注册 [Sa-Token全局过滤器]
     */
    @Bean
    public SaServletFilter getSaServletFilter() {
        return new SaServletFilter()
                .addInclude("/**").addExclude("/favicon.ico")    /* 排除掉 /favicon.ico */
                .setAuth(obj -> {
//                    SaRouter.match("/**", "/users/login", StpUtil::checkLogin);
                    SaRouter.match("/users/login", StpUtil::checkLogin);
                })
                .setError(e -> {
                    // 设置响应头
                    SaHolder.getResponse().setHeader("Content-Type", "application/json;charset=UTF-8");
                    // 使用封装的 JSON 工具类转换数据格式
                    return JsonUtil.toJSONString(ResultResponse.error(e.getMessage()));
                });
    }
}

